home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 2 / DOS036.dsk / HGR DEMO!.bas < prev    next >
BASIC Source File  |  2012-02-16  |  5KB  |  89 lines

  1. 0  CALL  -936: DIM A(8)
  2. 1 X = 0
  3. 2  VTAB 10: PRINT  TAB( 10);"APPLESOFT II ": PRINT : PRINT  TAB( 10);"HIGH RESOLUTION DEMONSTRATION"
  4. 3  PRINT : PRINT  TAB( 10);"BY R. KEATING"
  5. 4  PRINT : PRINT "1   CARDOID": PRINT "2   HEX": PRINT "3   VERTEX 
  6. 5  PRINT "4   LINES": PRINT "5   INTERNAL SPIRAL": PRINT "6   EXTERNAL SPIRAL": PRINT "7   GARDEN"
  7. 6  PRINT "0   FINISH"
  8. 10  CALL  -384: PRINT : PRINT : PRINT : PRINT " HIT ANY KEY TO RETURN ": CALL  -380
  9. 20  GET X$:W =  VAL(X$): IF W = 0  THEN 22000
  10. 30  ON W GOTO 1000,2000,3000,4000,5000,6000,7000,10000,10000
  11. 1000 N = 2:PI = 3.1415926535
  12. 1010  HGR : POKE  -16302,0
  13. 1020 X =  RND(45) *3 +1: HCOLOR= X: IF N = 6  THEN N = 2
  14. 1030  FOR A = 0 TO 360  STEP 3:V = A *PI/180:X = 139 * COS(V) +139:Y = 95 * SIN(V) +95: HPLOT X,Y:U = N *A +N:U = U *PI/180
  15. 1040 J = 139 * COS(U) +139:K = 95 * SIN(U) +95: HPLOT  TO J,K: NEXT A
  16. 1050 N = N +1: IF  PEEK( -16384) >127  THEN  GOTO 10000
  17. 1060  HGR : POKE  -16302,0: GOTO 1020
  18. 2000 M = 1.04719755:T = 0:X = 279 * RND(10):Y = 191 * RND(10):R = 30: HGR : POKE  -16302,0
  19. 2010 E = 200 * RND(10) +20: HCOLOR= 3 * RND(10) +1
  20. 2015  IF R = 30  THEN  HCOLOR= 3
  21. 2020  FOR I = 1 TO E:T = T +( -1) ^( INT( RND(10) *2)) *M:A = X +R * SIN(T):B = Y +R * COS(T): IF A >279  OR B >191  OR A <0  OR B <0  THEN 2060
  22. 2030  HPLOT X,Y TO A,B:X = A:Y = B
  23. 2040  NEXT I:R = R/2: IF  PEEK( -16384) >127  THEN 10000
  24. 2045  IF R <5  THEN 2000
  25. 2050  GOTO 2010
  26. 2060 T = T +( -1) ^( INT( RND(10) *2)) *M *2:A = X +R * SIN(T):B = Y +R * COS(T): IF A >279  OR B >191  OR A <0  OR B <0  THEN 2060
  27. 2070  GOTO 2030
  28. 3000 IN = 2.3561937: HGR : POKE  -16302,0
  29. 3001 R = 85 * RND(10) +10
  30. 3002  HCOLOR= 4 * RND(10)
  31. 3010 X = 7:M = 0:N = 0
  32. 3020  FOR J = 1 TO 7: HPLOT R * SIN(M) +140,R * COS(N) +95:A = M:B = N
  33. 3030  FOR I = 0 TO X:A = A +IN:B = B +IN: HPLOT R * SIN(M) +140,R * COS(N) +95 TO R * SIN(A) +140,R * COS(B) +95: NEXT I
  34. 3040 M = M +IN:N = N +IN:X = X -1: NEXT J
  35. 3050  IF  PEEK( -16384) >127  THEN 10000
  36. 3060  GOTO 3001
  37. 4000 I = 0
  38. 4005  HGR : POKE  -16302,0
  39. 4010  FOR I = 1 TO 4:A(I) = 280 * RND(10): NEXT I: FOR I = 5 TO 8:A(I) = 192 * RND(10): NEXT I:Z = 2 * INT(10 * RND(10)) +10
  40. 4020 O = 0:P = Z:S = (Z -1)/2: HCOLOR= 3 * RND(10) +1:M = Z/2:N = M:X = 1
  41. 4030  FOR J = 1 TO 2
  42. 4040  FOR I = 0 TO S: HPLOT (O *A(3) +P *A(1))/Z,(O *A(5) +P *A(7))/Z TO (M *A(2) +N *A(4))/Z,(M *A(6) +N *A(8))/Z
  43. 4050  HPLOT (P *A(3) +O *A(1))/Z,(P *A(5) +O *A(7))/Z TO (N *A(2) +M *A(4))/Z,(N *A(6) +M *A(8))/Z
  44. 4060 O = O +1:P = P -1:M = M +X:N = N -X: NEXT I:X =  -1:S = S -1: NEXT J
  45. 4070  IF  PEEK( -16384) >127  THEN 10000
  46. 4080  FOR I = 1 TO 800: NEXT I: GOTO 4005
  47. 5000 A = 50 * RND(10):B =  RND(10) *35:C = 279 -A:D = B:E = C:F = 191 -B:G = A:H = F
  48. 5001 Z =  INT(35 * RND(10)):Z = Z +2:N = Z -1
  49. 5010  HCOLOR= 3 * RND(10) +1: HGR : POKE  -16302,0
  50. 5020  HPLOT A,B: HPLOT  TO C,D: HPLOT  TO E,F: HPLOT  TO G,H: HPLOT  TO A,B:A = (N *A +G)/Z:B = (N *B +H)/Z:G = (N *G +E)/Z:H = (N *H +F)/Z:E = (N *E +C)/Z:F = (N *F +D)/Z:C = (N *C +A)/Z:D = (N *D +B)/Z
  51. 5030  IF  ABS(A -E) + ABS(B -F) <2  THEN 5000
  52. 5040  IF  PEEK( -16384) >127  THEN 10000
  53. 5050  GOTO 5020
  54. 6000 A = 279 * RND(10):B = 191 * RND(10):C = 279 * RND(10):X = 191 * RND(10):D = 279 * RND(10):Y = 191 * RND(10)
  55. 6006 T =  INT(4 * RND(10) +1)
  56. 6008 S =  INT(2 * RND(10) +1)
  57. 6009 Z =  INT( RND(10) *40):Z = Z +2:N = Z -1:Z = Z +S
  58. 6010  HCOLOR= 3 * RND(10) +1: HGR : POKE  -16302,0
  59. 6020  ON T GOTO 6050,6060,6070,6080
  60. 6030 A = (N *A +C)/Z:B = (N *B +X)/Z:C = (N *C +E)/Z:X = (N *X +Y)/Z:E = (E *N +A)/Z:Y = (N *Y +B)/Z
  61. 6040  IF  ABS(A -C) <.1  THEN 6000
  62. 6041  IF  PEEK( -16384) >127  THEN 10000
  63. 6045  GOTO 6020
  64. 6050  HPLOT A,B: HPLOT  TO C,X: HPLOT  TO E,Y: HPLOT  TO A,B: GOTO 6030
  65. 6060  HPLOT 279 -A,B: HPLOT  TO 279 -C,X: HPLOT  TO 279 -E,Y: HPLOT  TO 279 -A,B: GOTO 6030
  66. 6070  HPLOT 279 -A,191 -B: HPLOT  TO 279 -C,191 -X: HPLOT  TO 279 -E,191 -Y: HPLOT  TO 279 -A,191 -B: GOTO 6030
  67. 6080  HPLOT A,191 -B: HPLOT  TO C,191 -X: HPLOT  TO E,191 -Y: HPLOT  TO A,191 -B: GOTO 6030
  68. 7000 X = 100 * RND(10) +75:Y = 50 * RND(10) +30:P = 10 * RND(10) +5:E = 1: HGR : POKE  -16302,0: HCOLOR= 3
  69. 7010  HPLOT X,191 TO X,Y
  70. 7020 A = Y +(191 -Y) * RND(10):R = (80 * RND(10) +20)/E:T = ( -1) ^( INT( RND(10) *2)) *(1.047 * RND(10) +.17)
  71. 7030 M = R * SIN(T) +X:N = A -R * COS(T): IF M <20  OR N <20  OR M >259  OR N >171  THEN 7020
  72. 7040  HPLOT X,A TO M,N:P = P -1:R = (10 * RND(10) +10)/E: HCOLOR= 2 * RND(10) +1: FOR I = .3 TO 6.3  STEP .3
  73. 7050  HPLOT M,N TO R * SIN(I) +M,R * COS(I) +N +1: NEXT I: IF  PEEK( -16384) >127  THEN 10000
  74. 7060  HCOLOR= 3: IF P <0  THEN 7070
  75. 7065  GOTO 7020
  76. 7070  IF E = 2  OR E = 3  THEN 7080
  77. 7075 X = 50 * RND(10) +199:Y = 50 * RND(10) +80:E = 2:P = 10 * RND(10) +5: HPLOT X,191 TO X,Y: GOTO 7020
  78. 7080  IF E = 3  THEN 7000
  79. 7085 X = 50 * RND(10) +30:Y = 91 * RND(10) +80:E = 3:P = 5 * RND(10) +5: HPLOT X,191 TO X,Y: GOTO 7020
  80. 8000  GOTO 1
  81. 9000  GOTO 1
  82. 10000  TEXT : CALL  -936: PRINT "<CTRL-G>": POKE  -16368,0: GOTO 1
  83. 22000 D$ = "<CTRL-D>"
  84. 22001  TEXT : GR : TEXT : CALL  -936
  85. 22010  PRINT D$;"RUN MENU"
  86. 22020  PRINT D$;"RUN MENU"
  87. 32767  REM  COPYRIGHT R.J.KEATING 
  88. 32768  REM  18 AUGUST 1978
  89. 32769  REM  SYDNEY, AUSTRALIA